// 导入Vue
import Vue from 'vue'

// base.css 用于样式重置 => 更好的替代方案 normalize.css(样式兼容)
import 'normalize.css/normalize.css' // A modern alternative to CSS resets

// 全部导入 => 直接使用, 无需手动引入
// 1. 首先这个项目不是toC项目. 用户体验没有那么重要
// 2. 项目大, 用组件库的组件可能也会用的7788
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

// 如果需要英文模式, 那么需要引入英文语言包
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n

// 项目中有一个@ 是src的别名(已经处理好了)
// 引入了一个全局样式文件
import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'
// import Pagetools from '@/components/PageTools'
// Vue.component('PageTools', Pagetools)
// obj插件对象
import obj from '@/components/index'
// 只要是插件,就可以用Vue.use,一旦use,会立即执行插件对象中的install方法
Vue.use(obj)
// 模块化语法: 默认导出/按需导出
// 直接执行js文件   import './xxx/hhh.js'
// 处理svg图标...
import '@/icons' // icon
// 处理页面能不能正常显示...
import '@/permission' // permission control

// 设置组件库的语言模式为 英文
// Vue.use(ElementUI, { locale: locale })
Vue.use(ElementUI)
// 如果想要中文版 element-ui，按如下方式声明
// Vue.use(ElementUI)

// const num = 99
// console.log(num)
// import { formatTime } from '@/filters/index'
// Vue.filter('formatTime', formatTime)
import * as filters from '@/filters/index.js'
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})
// console.log(process.env.VUE_APP_BASE_API, process.env.age)

Vue.config.productionTip = false

// function Person () {

// }
// Person.prototype.aa = 1

// const p = new Person() => p.aa

// import request from '@/utils/request'
// 我准备往Vue的原型上放一个方法 request,
// 所有的组件都是可复用的Vue实例,  this.$request()
// Vue.prototype.$request = request
// import { imgerror, color } from '@/directives/index'
// Vue.directive('imgerror', imgerror)
// Vue.directive('color', color)
// import * as directive from '@/directives/index'
// for (const key in directive) {
//   Vue.directive(key, directive[key])
// }
import * as directives from '@/directives/index'

Object.keys(directives).forEach((key) => {
  Vue.directive(key, directives[key])
})
import Print from 'vue-print-nb'
Vue.use(Print)// 这个插件一旦use结束,就是给你注册一个全局自定义指令
new Vue({
  el: '#app', // 指定挂载点
  router,
  store,
  render: h => h(App)
})
